
package modele;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Danicela
 */
public class Action
{

    private int id;
    private Date date;
    private String texte;
    private String identifiantEchantillon;
    private Utilisateur utilisateur;

    public Action(int id, Date date, String texte, String identifiantEchantillon, Utilisateur utilisateur) {
        this.id = id;
        this.date = date;
        this.texte = texte;
        this.identifiantEchantillon = identifiantEchantillon;
        this.utilisateur = utilisateur;
    }

     public String getTexte() {
        return texte;
    }

    public Date getDate() {
        return date;
    }

    public String getIdentifiantEchantillon() {
        return identifiantEchantillon;
    }

    public int getId() {
        return id;
    }

    public Utilisateur getUtilisateur() {
        return utilisateur;
    }

    //Accès BD

    public static List<Action> getToutesLesActions() throws SQLException
    {
        List<Action> resultat = new ArrayList<Action>();

        String requete = "Select u.id_user, u.login, u.mdp, u.type, a.id_action, a.texte, a.date, a.identifiant_echantillon from action a, utilisateur u where a.id_user = u.id_user order by a.date;";
        Connection c = Database.getConnection();
        Statement s = c.createStatement();
        ResultSet rs = s.executeQuery(requete);

        while(rs.next())
        {
            int idUser = rs.getInt(1);
            String login = rs.getString(2);
            String mdp = rs.getString(3);
            int type = rs.getInt(4);
            Utilisateur u = new Utilisateur(idUser, login, mdp, type);

            int idAction = rs.getInt(5);
            String texte = rs.getString(6);
            Date dateResultat = rs.getDate(7);
            String identifiantEchantillon = rs.getString(8);
            Action a = new Action(idAction, dateResultat, texte, identifiantEchantillon, u);

            resultat.add(a);
        }

        c.close();

        return resultat;
    }

    public static void enregistrerNouvelleAction(Date date, String texte, String identifiantEchantillon, int idUtilisateur) throws SQLException
    {
        String requete = "Insert into action(identifiant_echantillon, id_user, date, texte) values(?, ?, ?, ?);";
        Connection c = Database.getConnection();
        PreparedStatement ps = c.prepareStatement(requete);
        ps.setString(1, identifiantEchantillon);
        ps.setInt(2, idUtilisateur);
        ps.setDate(3, new java.sql.Date(date.getTime()));
        ps.setString(4, texte);

        ps.executeUpdate();

        c.close();
    }


}
